Introduction
============
This is just wrapper code to ease the use of the FMOD sound library with esenthel.
The wrapper tries to emulate the way of doing things in esenthel as much as possible, but has some 
extra functionality also. I've only tried to compile this on windows. But since FMOD is platform
independant, is should be easy to use this wrapper on a mac system.

Get this working with standard EE tutorial solution
===================================================
* You need to install FMOD, place include and library files where your compiler can find them. Personally I copy the contents of the FMOD Programmers API Windows\api\inc folder in programfiles\msvstudio\VC\include\fmod.
* Add fmodex_vc.lib to the Additional dependencies (linker options) in your tutorial project.
* In Linker->general->additional library directories, add the path to FMOD Programmers API Windows\api\lib
* Place fmodex.dll in your Tutorials folder.
* copy the FM folder in this archive to the Tutorials folder.
* Add "C:\EsenthelEngineSDK\Tutorials\FMOD;" to Additional Include Directories (project options)
* copy fmod_tutorials from this archive to "C:\EsenthelEngineSDK\Tutorials\Source"
* Replace the current tutorial with an FMOD one


Highlights
==========
* As of august 2012: Sounds can be read from pak files
* As of august 2012: DSP sounds and effects are available
* As of may    2011: Geometry objects for sound occlusion.

* Every FMOD object is placed inside namespace FM

* logarithmic rolloff scaling. This can be confusing at first, but is 
	much more	realistic. From the FMOD manual:

	-- FMOD Quote --

	When FMOD uses this model, 'range' of a sound / channel, is the 
	distance that the sound starts to attenuate from. This can simulate 
	the sound being smaller or larger. By default, for every doubling of 
	this mindistance, the sound volume will halve.

	As an example of relative sound sizes, we can compare a bee and a jumbo jet. 
	At only a meter or 2 away from a bee we will probably not hear it any more. 
	In contrast, a jet will be heard from hundreds of meters away. In this case 
	we might set the bee's range to 0.1 meters. After a few meters it 
	should fall silent. 
	The jumbo jet's range could be set to 50 meters. This could take many 
	hundreds of meters of distance between listener and sound before it falls 
	silent.
	
	In this case we now have a more realistic representation of the loudness 
	of the sound, even though each wave file has a fully normalized 16bit 
	waveform within. (ie if you played them in 2D they would both be the same volume).

	-- end Quote --

	(I got confused at first. If you have only one sound in your world, it will 
	sound way too loud. But that is exactly what should happen if somethings makes a 
	noise in a 0Db environment. (Even a very silent place has easily 30Db in reality.)
	So to make it realistic, you have to add more sounds at every spot. This camouflages 
	the ones that are further away.)

* Doppler effect based on object and player velocity. 
	(Perhaps EE::Sound has this too, I can't see.)

* Volumegroups are replaced by completely separate channels. 
	You can also add filters or reverb to them. So instead of 
	VolumeControl.music(), use ChannelMusic.volume() and so on.

* Added a standard channel for gui sounds (ChannelGui). You can
	also create channels on your own as long as they exist before you
	try adding a sound to them.

* Public fader object can be used to fade sounds over time. You can 
	optionally delete the sound once it has faded out.

* Underwater effect. Selectable by channel, has a depth factor.

* Reverb objects can be added at 3D positions. (There are about 20 presets.)

* Enumerate available sound drivers and choose which one to use.





	

	